using System;
using ContentRenderingApi.Exceptions;

namespace ContentRenderingApi.Node
{
    /// <summary/>
    internal class DefaultNode : AbstractContainerNode
    {
        /// <summary/>
        internal DefaultNode() : base(null) {}

        /// <summary/>
        internal override bool IsOutputTag()
        {
            return false;
        }

        /// <summary/>
        internal override bool IsSubstitutionTag()
        {
            return false;
        }

        /// <summary/>
        internal override bool IsTransparentTag()
        {
            return false;
        }

        /// <summary/>
        internal override bool IsIfTag()
        {
            return false;
        }

        /// <summary/>
        internal override bool IsIfNotTag()
        {
            return false;
        }

        /// <summary/>
        internal override bool IsParentTag()
        {
            return false;
        }

        /// <summary/>
        internal override bool IsRootTag()
        {
            return false;
        }

        /// <summary/>
        internal override bool IsChildTag()
        {
            return false;
        }

        /// <summary/>
        internal override string Name
        {
            get { throw new NodeDoesNotHaveTagException(); }
        }

        /// <summary/>
        internal override int ParentLevel
        {
            get { throw new NodeDoesNotHaveTagLevelException(); }
        }
    }
}
